﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Collections; //Bruges til at anvende iteratoren på lister
using Interfaces;
using System.Data.SqlClient;
using Indstillinger;

namespace Model
{
    [Serializable]
    public class LeverandørCollection
    {
        //Attributter
        private List<Leverandør> leverandører;
        private int leverandørId;

        //Kontruktor
        public LeverandørCollection()
        {
            leverandører = new List<Leverandør>();
            leverandørId = 1000; //leverandørId incrementeres efter tildeling til ny leverandør
        }

        //Metoder


        public void RegistrerLeverandør(string navn,string adresse,string postnr,string by,string tlfnr,string www,string email,string kontaktPerson)
        {
            Leverandør leverandør = Leverandør.opretLeverandør(navn, adresse, postnr, by, tlfnr, www, email, kontaktPerson);

            //leverandørId++;

            leverandører.Add(leverandør);
        }

        public Leverandør FindLeverandør(int leverandørId) 
        {
            foreach (Leverandør leverandør in leverandører)
            {
                if (leverandørId == leverandør.LeverandørId)
                {
                    return leverandør;
                }
            }
            return null;
        }
        
        public IEnumerator<ILeverandørdata> GetLeverandøriterator()
        {
            List<ILeverandørdata> leverandørerHer = new List<ILeverandørdata>();

            SqlConnection con = new SqlConnection(DbIndstillinger.HentConnectionString());
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = con;
            cmd.CommandType = System.Data.CommandType.StoredProcedure;
            cmd.CommandText = "hentAlleLeverandører";
            con.Open();

            SqlDataReader reader = cmd.ExecuteReader();

            while (reader.Read())
            {
                string navn = (string)reader["navn"];
                int leverandørId = (int)reader["leverandørId"];
                
                Leverandør leverandør = new Leverandør(leverandørId, navn, null, null, null, null, null, null, null);
                leverandørerHer.Add(leverandør);
            }

            reader.Close();
            con.Close();

            return leverandørerHer.GetEnumerator();
        }

        public void TilføjLeverandør(Leverandør leverandør)
        {
            leverandører.Add(leverandør);
        }
    }
}
